package com.xiaobo.client;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.xiaobo.util.HttpUtil;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class NsrxxActivity extends Activity {
	private TextView nsr_xx;
	private GridView gn_grid;
	private String nsrbm;
	private String nsrmc;
	private String nsrnbm;
	// 后台返回的人员信息Key，在以后所有调用后台数据时，
	// 必须把这个Key值传给后台，否则，后台返回null
	private String userKey;
	// 功能图片
	int[] gn_images = { R.drawable.gn01, R.drawable.gn02, R.drawable.gn06 ,
			R.drawable.gn04, R.drawable.gn05,R.drawable.gn03, R.drawable.gn07,
			R.drawable.gn08,R.drawable.gn09,R.drawable.gn10,R.drawable.gn11,
			R.drawable.gn12,R.drawable.gn13,R.drawable.gn14,R.drawable.gn15};
	// 功能名称
	int[] gn_names = { R.string.gn01, R.string.gn02, R.string.gn06 ,
			R.string.gn04, R.string.gn05,R.string.gn03, R.string.gn07,
			R.string.gn08,R.string.gn09,R.string.gn10,R.string.gn11
			,R.string.gn12,R.string.gn13,R.string.gn14,R.string.gn15 };

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		Window win = getWindow();
		win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
				WindowManager.LayoutParams.FLAG_FULLSCREEN);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.nsrxx);
		Intent intent = this.getIntent();
		Bundle bundle = intent.getExtras();
		nsrbm = bundle.getString("nsrbm");
		nsrmc = bundle.getString("nsrmc");
		nsrnbm = bundle.getString("nsrnbm");
		// 后台返回的人员信息Key，在以后所有调用后台数据时，
		// 必须把这个Key值传给后台，否则，后台返回null
		userKey = bundle.getString("userKey");

		// 获得纳税人信息
		gn_grid = (GridView) findViewById(R.id.gn_grid);

		//显示标题
		TextView v_title = (TextView) findViewById(R.id.web_title);
		v_title.setText("您所在模块:[一户式主界面]");
		//在上方显示纳税人名称和编码
		TextView v_nsrbm = (TextView) findViewById(R.id.web_nsrbm);
		v_nsrbm.setText("纳税人编码："+nsrbm);
		TextView v_nsrmc= (TextView) findViewById(R.id.web_nsrmc);
		v_nsrmc.setText("纳税人名称："+nsrmc);
		



		// 创建适配器
		SimpleAdapter adapter = new SimpleAdapter(this, generateGridData(),
				R.layout.gn_grid, new String[] { "image", "name" }, new int[] {
						R.id.gn_image, R.id.gn_name });
		gn_grid.setAdapter(adapter);
		gn_grid.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				// TODO Auto-generated method stub
				//网络链接检测
				HttpUtil.HttpTest(NsrxxActivity.this);
				
				Intent intent = new Intent();
				Bundle bundle = new Bundle();
				bundle.putString("nsrnbm", nsrnbm);
				bundle.putString("nsrmc", nsrmc);
				bundle.putString("nsrbm", nsrbm);
				
				// 后台返回的人员信息Key，在以后所有调用后台数据时，
				// 必须把这个Key值传给后台，否则，后台返回null
				bundle.putString("userKey", userKey);

				switch (arg2) {
				// 纳税人基础信息
				case 0:
					bundle.putString("title", "基本信息");
					bundle.putString("url", HttpUtil.IpUrl
							+ "/server/nsrjbxx.jsp");
					//其他用户自定义条件项，如果没有，就传个空值进去
					bundle.putString("OtherTj", "");			
					intent.putExtras(bundle);
					// intent.setClass(NsrxxActivity.this, LocationDw.class);
					intent.setClass(NsrxxActivity.this,PublicWebView.class);
					startActivity(intent);
					break;
				// 王朝玉增加，银行信息
				case 1:
					bundle.putString("title", "银行信息");
					bundle.putString("url", HttpUtil.IpUrl
							+ "/server/nsryhxx.jsp");
					//其他用户自定义条件项，如果没有，就传个空值进去
					bundle.putString("OtherTj", "");			
					intent.putExtras(bundle);
					// intent.setClass(NsrxxActivity.this, LocationDw.class);
					intent.setClass(NsrxxActivity.this,PublicWebView.class);
					startActivity(intent);
					break;
					// 纳税人缴款信息
				case 2:
					intent.putExtras(bundle);
					intent.setClass(NsrxxActivity.this, NsrJkList.class);
					startActivity(intent);
					break;	
					//纳税人减免信息
				case 3:
					bundle.putString("title", "减免信息");
					bundle.putString("url", HttpUtil.IpUrl
							+ "/server/nsrjmxx.jsp");
					//其他用户自定义条件项，如果没有，就传个空值进去
					bundle.putString("OtherTj", "");			
					intent.putExtras(bundle);
					// intent.setClass(NsrxxActivity.this, LocationDw.class);
					intent.setClass(NsrxxActivity.this,PublicWebView.class);
					startActivity(intent);
					break;
					// 纳税人申报信息
				case 4:
					intent.putExtras(bundle);
					intent.setClass(NsrxxActivity.this, NsrSbList.class);
					startActivity(intent);
					break;	
				case 5:

					// 前面几个参数都在onItemClick初始阶段初始化，在这只需要给出title参数
					bundle.putString("title", "停业信息");
					bundle.putString("url", HttpUtil.IpUrl
							+ "/server/nsrtfyxx.jsp");
					//其他用户自定义条件项，如果没有，就传个空值进去
					bundle.putString("OtherTj", "");			
					intent.putExtras(bundle);
					// intent.setClass(NsrxxActivity.this, LocationDw.class);
					intent.setClass(NsrxxActivity.this, PublicWebView.class);
					startActivity(intent);
					break;


				// 孙勇智增加，纳税人税种核定信息
				case 6:
					bundle.putString("title", "核定信息");
					bundle.putString("url", HttpUtil.IpUrl
							+ "/server/nsrhdxx.jsp");
					//其他用户自定义条件项，如果没有，就传个空值进去
					bundle.putString("OtherTj", "");			
					intent.putExtras(bundle);
					// intent.setClass(NsrxxActivity.this, LocationDw.class);
					intent.setClass(NsrxxActivity.this,PublicWebView.class);
					startActivity(intent);
					break;
					//纳税人地方税税种核定信息
				case 7:
					bundle.putString("title", "地方税核定信息");
					bundle.putString("url", HttpUtil.IpUrl
							+ "/server/nsrdfshdxx.jsp");
					//其他用户自定义条件项，如果没有，就传个空值进去
					bundle.putString("OtherTj", "");			
					intent.putExtras(bundle);
					// intent.setClass(NsrxxActivity.this, LocationDw.class);
					intent.setClass(NsrxxActivity.this,PublicWebView.class);
					startActivity(intent);
					break;
					//纳税人减并征期信息
				case 8:
					bundle.putString("title", "减并征期信息");
					bundle.putString("url", HttpUtil.IpUrl
							+ "/server/nsrjbzq.jsp");
					//其他用户自定义条件项，如果没有，就传个空值进去
					bundle.putString("OtherTj", "");			
					intent.putExtras(bundle);
					// intent.setClass(NsrxxActivity.this, LocationDw.class);
					intent.setClass(NsrxxActivity.this,PublicWebView.class);
					startActivity(intent);
					break;
					//纳税人发票税种核定信息
				case 9:
					bundle.putString("title", "发票核定信息");
					bundle.putString("url", HttpUtil.IpUrl
							+ "/server/nsrfphdxx.jsp");
					//其他用户自定义条件项，如果没有，就传个空值进去
					bundle.putString("OtherTj", "");			
					intent.putExtras(bundle);
					// intent.setClass(NsrxxActivity.this, LocationDw.class);
					intent.setClass(NsrxxActivity.this,PublicWebView.class);
					startActivity(intent);
					break;
					//纳税人发票结存信息
				case 10:
					bundle.putString("title", "发票领用信息");
					bundle.putString("url", HttpUtil.IpUrl
							+ "/server/nsrfpjcxx.jsp");
					//其他用户自定义条件项，如果没有，就传个空值进去
					bundle.putString("OtherTj", "");			
					intent.putExtras(bundle);
					// intent.setClass(NsrxxActivity.this, LocationDw.class);
					intent.setClass(NsrxxActivity.this,PublicWebView.class);
					startActivity(intent);
					break;	
				case 11://发票分析
					bundle.putString("title", "发票分析");
					bundle.putString("url", HttpUtil.IpUrl
							+ "/server/nsrfpfx.jsp");
					//其他用户自定义条件项，如果没有，就传个空值进去
					bundle.putString("OtherTj", "");			
					intent.putExtras(bundle);
					// intent.setClass(NsrxxActivity.this, LocationDw.class);
					intent.setClass(NsrxxActivity.this,PublicWebView.class);
					startActivity(intent);
					break;	
				case 12://定额分析
					bundle.putString("title", "定额分析");
					bundle.putString("url", HttpUtil.IpUrl
							+ "/server/nsrdefx.jsp");
					//其他用户自定义条件项，如果没有，就传个空值进去
					bundle.putString("OtherTj", "");			
					intent.putExtras(bundle);
					// intent.setClass(NsrxxActivity.this, LocationDw.class);
					intent.setClass(NsrxxActivity.this,PublicWebView.class);
					startActivity(intent);
					break;	
				case 13://地图定位
					Toast toast2 = Toast.makeText(getApplicationContext(),
							"抱歉，此功能正在开发中.....", Toast.LENGTH_LONG);
					toast2.setGravity(Gravity.CENTER, 0, 0);
					toast2.show();
					break;
				case 14://待定功能
					Toast toast3 = Toast.makeText(getApplicationContext(),
							"抱歉，此功能正在开发中.....", Toast.LENGTH_LONG);
					toast3.setGravity(Gravity.CENTER, 0, 0);
					toast3.show();
					break;

				}


				}

			

		});
	}

	// 生成Gridview数据
	public List<HashMap<String, Object>> generateGridData() {
		ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
		int rowNum = gn_images.length;
		for (int i = 0; i < rowNum; i++) {
			// 把每一个功能菜单Gridiew存在hashmap中
			HashMap<String, Object> map = new HashMap<String, Object>();
			map.put("image", gn_images[i]);
			map.put("name", this.getResources().getString(gn_names[i]));
			list.add(map);
		}
		return list;
	}

	// 以下代码是系统主菜单实现模块
	// 点击Menu时，系统调用当前Activity的onCreateOptionsMenu方法，并传一个实现了一个Menu接口的menu对象供你使用
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		/*
		 * add()方法的四个参数，依次是： 1、组别，如果不分组的话就写Menu.NONE,
		 * 2、Id，这个很重要，Android根据这个Id来确定不同的菜单 3、顺序，那个菜单现在在前面由这个参数的大小决定
		 * 4、文本，菜单的显示文本
		 */
		menu.add(Menu.NONE, Menu.FIRST + 1, 1, "业务查询").setIcon(
				android.R.drawable.ic_menu_delete);
		// setIcon()方法为菜单设置图标，这里使用的是系统自带的图标，同学们留意一下,以
		// android.R开头的资源是系统提供的，我们自己提供的资源是以R开头的
		menu.add(Menu.NONE, Menu.FIRST + 2, 2, "发票查询").setIcon(
				android.R.drawable.ic_menu_edit);
		menu.add(Menu.NONE, Menu.FIRST + 3, 3, "系统设置").setIcon(
				android.R.drawable.ic_menu_help);
		menu.add(Menu.NONE, Menu.FIRST + 4, 4, "版本更新").setIcon(
				android.R.drawable.ic_menu_add);
		menu.add(Menu.NONE, Menu.FIRST + 5, 5, "关于..").setIcon(
				android.R.drawable.ic_menu_info_details);
		menu.add(Menu.NONE, Menu.FIRST + 6, 6, "退出").setIcon(
				android.R.drawable.ic_menu_send);
		// return true才会起作用
		return true;
	}

	// 菜单项被选择事件
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case Menu.FIRST + 1:
			Toast.makeText(this, "此功能正在开发中.....", Toast.LENGTH_LONG).show();
			break;
		case Menu.FIRST + 2:
			Toast.makeText(this, "此功能正在开发中.....", Toast.LENGTH_LONG).show();
			break;
		case Menu.FIRST + 3:
			Intent intent = new Intent(NsrxxActivity.this, SysTab.class);
			startActivity(intent);
			break;
		case Menu.FIRST + 4:
			Toast.makeText(this, "此功能正在开发中.....", Toast.LENGTH_LONG).show();
			break;
		case Menu.FIRST + 5:
			Toast.makeText(this, "此功能正在开发中.....", Toast.LENGTH_LONG).show();
			break;
		case Menu.FIRST + 6:
			this.showTips();
			// this.finish();
			break;
		}
		return false;
	}
	// 以下代码是退出提示代码段
	private void showTips() {
		AlertDialog alertDialog = new AlertDialog.Builder(NsrxxActivity.this)
				.setTitle("退出程序").setMessage("是否退出程序")
				.setPositiveButton("确定", new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int which) {
						NsrxxActivity.this.finish();
					}
				})
				.setNegativeButton("取消", new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int which) {
						return;
					}
				}).create(); // 创建对话框
		alertDialog.show(); // 显示对话框
	}

	// 选项菜单被关闭事件，菜单被关闭有三种情形，menu按钮被再次点击、back按钮被点击或者用户选择了某一个菜单项
	@Override
	public void onOptionsMenuClosed(Menu menu) {
		// Toast.makeText(this, "选项菜单关闭了", Toast.LENGTH_LONG).show();
	}

	// 菜单被显示之前的事件
	@Override
	public boolean onPrepareOptionsMenu(Menu menu) {
		// Toast.makeText(this,
		// "选项菜单显示之前onPrepareOptionsMenu方法会被调用，你可以用此方法来根据打当时的情况调整菜单",
		// Toast.LENGTH_LONG).show();
		// 如果返回false，此方法就把用户点击menu的动作给消费了，onCreateOptionsMenu方法将不会被调用
		return true;
	}

}
